/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.gco.ui;

import edu.ucue.ptc.gco.mdl.Empleado;
import edu.ucue.ptc.gco.mdl.ObjetivoEmpleado;
import edu.ucue.ptc.gco.ngc.ObjetivoEmpleadoManajerLocal;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.el.ELContext;
import javax.el.ValueExpression;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import org.primefaces.context.RequestContext;

/**
 *
 * @author Johnny
 */
@Named(value = "listaObjetivosAction")
@SessionScoped
public class ListaObjetivosAction implements Serializable {

    /**
     * Creates a new instance of ListaObjetivosAction
     */
    Empleado empleado;
    public static ListaObjetivosAction getInstance() {
        ELContext context = FacesContext.getCurrentInstance().getELContext();
        ValueExpression ex = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().
                createValueExpression(context, "#{listaObjetivosAction}", ListaObjetivosAction.class);
        return (ListaObjetivosAction) ex.getValue(context);}
    public ListaObjetivosAction() {
    }
    
    @Inject
    ObjetivoEmpleadoManajerLocal objetivoEmpleadoManager;
    
    List<ObjetivoEmpleado> listaObjetivos;
    
    public void CargarLista(Empleado empleado)
    {
        setEmpleado(empleado);
        actualizar();
    }
    
    @PostConstruct
    public void init() {
    }
    public void actualizar() {
        try {
            setListaObjetivos(objetivoEmpleadoManager.listarObjetivoEmpleado(getEmpleado(),"user", "user"));
       } catch (Exception e) {
            
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(e.getMessage()));
        }
    }

    public Empleado getEmpleado() {
        return empleado;
    }

    public void setEmpleado(Empleado empleado) {
        this.empleado = empleado;
    }
    
    public void estableceEmpleado(Empleado empleado)
    {
        this.empleado = empleado; 
    }

    public List<ObjetivoEmpleado> getListaObjetivos() {
        return listaObjetivos;
    }

    public void setListaObjetivos(List<ObjetivoEmpleado> listaObjetivos) {
        this.listaObjetivos = listaObjetivos;
    }
  
    
    
}
